import Vue from 'vue'
import VueRouter from 'vue-router'
import routes from './routes'


Vue.use(VueRouter)
// this.$router代表的就是路由器对象
// 而路由器对象调用的push方法，就是VueRouter的prototype里面的方法
// 1、先把原来的push方法/函数  保存起来
let originPush = VueRouter.prototype.push
let originReplace = VueRouter.prototype.replace

VueRouter.prototype.push = function(location,resolved,rejected){
  if(resolved === undefined && rejected===undefined){
    // 代表调用push只传递了第一个对象，没有传递成功的回调和失败的回调
    return originPush.call(this,location).catch(() => {})
  }else{
    return originPush.call(this,location,resolved,rejected)
  }
}

VueRouter.prototype.replace = function(location,resolved,rejected){
  if(resolved === undefined && rejected===undefined){
    // 代表调用push只传递了第一个对象，没有传递成功的回调和失败的回调
    return originReplace.call(this,location).catch(() => {})
  }else{
    return originReplace.call(this,location,resolved,rejected)
  }
}




export default new VueRouter({
  routes,
  // 配置路由跳转滚动的位置
  scrollBehavior (to, from, savedPosition) {
    return { y: 0 }
  }
})